package com.ruoyi.cinema.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cinema.BO.CanUsePriceBO;
import com.ruoyi.cinema.BO.FilmScheduleBO;
import com.ruoyi.cinema.BO.GetEffectivePromoBO;
import com.ruoyi.cinema.BO.LockSeatBO;
import com.ruoyi.cinema.DTO.SeatPlanYzDTO;
import com.ruoyi.cinema.domain.FilmSchedule;

import java.util.List;

/**
 * 影片排期Service接口
 *
 * @author HHAOYU
 * @date 2020-12-08
 */
public interface IFilmScheduleService  extends IService<FilmSchedule> {

    /**
     * 查询影片排期
     *
     * @param id 影片排期ID
     * @return 影片排期
     */
    public FilmSchedule selectFilmScheduleById(Long id);

    /**
     * 查询影片排期列表
     *
     * @param filmSchedule 影片排期
     * @return 影片排期集合
     */
    public List<FilmSchedule> selectFilmScheduleList(FilmSchedule filmSchedule);

    /**
     * 新增影片排期
     *
     * @param filmSchedule 影片排期
     * @return 结果
     */
    public int insertFilmSchedule(FilmSchedule filmSchedule);

    /**
     * 修改影片排期
     *
     * @param filmSchedule 影片排期
     * @return 结果
     */
    public int updateFilmSchedule(FilmSchedule filmSchedule);

    /**
     * 批量删除影片排期
     *
     * @param ids 需要删除的影片排期ID
     * @return 结果
     */
    public int deleteFilmScheduleByIds(Long[] ids);

    /**
     * 删除影片排期信息
     *
     * @param id 影片排期ID
     * @return 结果
     */
    public int deleteFilmScheduleById(Long id);

    public SeatPlanYzDTO getScheduleHallSeat(FilmSchedule filmSchedule);

   public List<FilmSchedule> selectFilmScheduleForApi(FilmScheduleBO filmScheduleBO);


    public List<CanUsePriceBO> getCanUsePrice(GetEffectivePromoBO gepb , LockSeatBO ls);
}
